This disclosure is related to a method and/or apparatus for improving bus utilization where a modem, such as a digital subscriber line (DSL) modem, is employed.
Devices that handle, store, display, route and/or process information, such as computers or other computing devices, for example, may transmit and/or receive data or other information in a packet format, such as between itself and other computing devices or computing platforms, over or via a network, such as a telecommunications network. A computing device or other computing platform may include a processor and memory. Such a device may in at least some cases be coupled via a local bus to a modem.
A modem may comprise any device that modulates and/or demodulates data, examples of which include, but are not limited to, an analog modem, a cable modem, or a digital subscriber line (DSL) modem. Modems may be used to process data and/or other types of information transmitted and/or received via a network. Likewise, one example of a local bus or communications link may include a high-speed connection, such as a local bus or communications link that complies with the Universal Serial Bus (USB) Specification, version 1.1, published September 1998, hereinafter referred to as a USB compliant bus, USB compliant local bus, or simply a universal serial bus or USB.
A computing device or platform, such as previously described, if coupled to a network, such as via a modem, for example, may comprise a node on the network. Such a network may include a plurality of interconnected nodes, and, therefore, may comprise, for example, without limitation, nodes other than the previously mentioned computing device that may comprise, for example, personal data assistants (PDAs), set tops boxes, peripherals, servers and/or terminals.
A computing device or platform, such as a computer, for example, may typically include an operating system. Furthermore, code may be present, such as on the computing device, on the platform, or on the modem, that initializes the modem. Such code may also provide the ability to transfer data from the computing device or platform to another node on the network via the modem. In the case of a DSL network, the rate the modem transmits and/or receives data, e.g., the transmission rate and/or the reception rate, sometimes referred to as the data rate, may be set, at least in part, by a DSL central office (CO). The DSL CO is typically coupled to the modem via the network. The CO will typically transmit a training signal to the DSL modem. The modem will typically process the training signal to then establish a data rate for the modem.
The rate at which a computing platform may transfer data to another device, such as a peripheral, for example, coupled to the platform via a USB compliant local bus may be set, at least in part, based on initialization of the modem. During such modem initialization, the computing platform may allocate or open a channel or pipe via the USB compliant bus to the peripheral, for example, or to another USB compliant device, and transfer data over the channel using a communication method such as, for example, described in the aforementioned USB specification. A channel is defined in the USB specification as the number of packets being transferred per millisecond between the computing device or platform and a USB compliant device. In circumstances where a DSL modem operates as a USB compliant device or USB device, the computing device or platform may employ one of at least two communications techniques to execute data transfers to the DSL modem at 8 Mbs or higher. One such USB communications technique is known as “Bulk USB” and the other technique is known as isochronous (ISO) USB. The maximum data transfer rate with these techniques is limited by the theoretical maximum bandwidth of the USB compliant bus and the implementation specific details associated with the aforementioned operating system and modem driver software. According to USB specification version 1.1, the maximum data transfer rate of a single channel or pipe is approximately 10 Mbits/sec.
For Bulk USB, a USB channel is not pre-allocated to any particular USB device and may be shared equally among the available or coupled USB devices. However, the maximum data throughput rate of devices using Bulk USB may be dependent, at least in part, on the ability of the operating system to respond in real time to the particular USB devices. Thus, the data rate between the platform and the DSL modem may be limited when many USB devices are coupled to the platform.
With ISO USB, the USB bandwidth may be pre-allocated to a coupled USB device by the computing platform upon initialization of the modem. However, bandwidth pre-allocation may present problems if other USB devices are also coupled via the USB compliant bus. Specifically, DSL modems may transfer data at a high data rate and may employ a high bandwidth. Thus, the modem may utilize a large percentage of the total bandwidth available. If USB devices are coupled to the USB compliant when it is oversubscribed (e.g. the USB devices coupled to the USB compliant bus exceed the available bandwidth), the platform may not allow these other devices to be installed on the bus. Likewise, it may also detrimentally impact the performance of a USB device coupled to the bus that employs Bulk USB, e.g., a Bulk USB device, if a high bandwidth ISO USB device is also coupled to the bus.